package com.budwk.app.enterprise.models;

import com.budwk.starter.common.openapi.annotation.ApiModel;
import com.budwk.starter.common.openapi.annotation.ApiModelProperty;
import com.budwk.starter.database.model.BaseModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.nutz.dao.entity.annotation.*;
import org.nutz.dao.interceptor.annotation.PrevInsert;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;

/**
 * @desc: 方法描述
 * @Author: laochiangx
 * @Date: 2024/3/7 16:21
 * @info:
 */



@Data
@EqualsAndHashCode(callSuper = false)
@Table("dfxy_enterprise.wx_main_personnel")
@Comment("主要人员实体")
@ApiModel(description = "主要人员实体")
public class WxMainPersonnel extends BaseModel implements Serializable {

    private static final long serialVersionUID = 1L;

    @Column
    @Name
    @Comment("ID")
    @ApiModelProperty(description = "ID")
    @ColDefine(type = ColType.VARCHAR, width = 32)
    @PrevInsert(uu32 = true)
    private String id;

    // 姓名
    @ApiModelProperty(description = "姓名", example = "张三")
    @Comment("姓名")
    @Column("full_name")
    @ColDefine(type = ColType.VARCHAR, width = 255)
    private String fullName;

    // 性别
    @ApiModelProperty(description = "性别", example = "男")
    @Comment("性别")
    @ColDefine(type = ColType.VARCHAR, width = 20)
    @Column("sex")
    private String sex;

    // 年龄
    @ApiModelProperty(description = "年龄", example = "30")
    @ColDefine(type = ColType.VARCHAR, width = 20)
    @Comment("年龄")
    @Column("age")
    private int age;

    // 学历
    @ApiModelProperty(description = "学历", example = "硕士研究生")
    @ColDefine(type = ColType.VARCHAR, width = 255)
    @Comment("学历")
    @Column("academic_background")
    private String academicBackground;

    // 职务
    @ApiModelProperty(description = "职务", example = "总经理")
    @ColDefine(type = ColType.VARCHAR, width = 255)
    @Column("post")
    @Comment("职务")
    private String post;

    // 薪酬
    @ApiModelProperty(description = "薪酬", example = "100000.00")
    @ColDefine(type = ColType.VARCHAR, width = 255)
    @Column("emolument")
    @Comment("薪酬")
    private double emolument;

    // 持股数
    @ApiModelProperty(description = "持股数", example = "1000")
    @ColDefine(type = ColType.VARCHAR, width = 255)
    @Column("number_shares_held")
    @Comment("持股数")
    private int numberSharesHeld;

    // 本届任期（由于Java中没有直接对应的类型，这里暂用String类型存储，实际应用中可能需要自定义类型或转换）
    @ApiModelProperty(description = "本届任期", example = "3 years 6 months")
    @ColDefine(type = ColType.VARCHAR, width = 255)
    @Column("this_term_office")
    @Comment("本届任期")
    private String thisTermOffice;

    // 公告日期
    @ApiModelProperty(description = "公告日期", example = "2022-12-31")
    @ColDefine(type = ColType.VARCHAR, width = 255)
    @Column("date_announcement")
    @Comment("公告日期")
    private Date dateAnnouncement;

    // 简介
    @ApiModelProperty(description = "简介", example = "拥有多年管理经验...")
    @ColDefine(type = ColType.VARCHAR, width = 255)
    @Column("introduce_briefly")
    @Comment("简介")
    private String introduceBriefly;

    // 持股比例
    @ApiModelProperty(description = "持股比例", example = "0.05")
    @ColDefine(type = ColType.VARCHAR, width = 255)
    @Column("shareholding_ratio")
    @Comment("持股比例")
    private double shareholdingRatio;

    // 最终受益股份
    @ApiModelProperty(description = "最终受益股份", example = "2000")
    @ColDefine(type = ColType.VARCHAR, width = 255)
    @Column("final_beneficiary_shares")
    @Comment("最终受益股份")
    private int finalBeneficiaryShares;
}